Pass features along to rustdoc
authorSteven Fackler <sfackler@gmail.com>
Tue, 7 Oct 2014 04:04:29 +0000 (21:04 -0700)
committerSteven Fackler <sfackler@gmail.com>
Tue, 7 Oct 2014 04:04:29 +0000 (21:04 -0700)
src/cargo/ops/cargo_rustc/mod.rs

index 4260ab34f0615a26b374d806f4de7ac0c3a64cc3..d21b6671d2b48a9a7587bc2c3758060f402f5a27 100644 (file)
@@ -306,9 +306,19 @@ fn rustdoc(package: &Package, target: &Target,
     let pkg_root = package.get_root();
     let cx_root = cx.layout(kind).proxy().dest().join("doc");
     let rustdoc = process("rustdoc", package, cx).cwd(pkg_root.clone());
-    let rustdoc = rustdoc.arg(target.get_src_path())
+    let mut rustdoc = rustdoc.arg(target.get_src_path())
                          .arg("-o").arg(cx_root)
                          .arg("--crate-name").arg(target.get_name());
+
+    match cx.resolve.features(package.get_package_id()) {
+        Some(features) => {
+            for feat in features.iter() {
+                rustdoc = rustdoc.arg("--cfg").arg(format!("feature=\"{}\"", feat));
+            }
+        }
+        None => {}
+    }
+
     let rustdoc = try!(build_deps_args(rustdoc, target, package, cx, kind));
 
     log!(5, "commands={}", rustdoc);